/*
递归
1.有一个递推公式
2.找到当前问题的递归“结束条件”
 */
import java.util.Scanner;
public class test18 {
    public static int fac(int n){
        if(n==1) return 1;
        return n * fac(n-1);
    }

public static void print(int n){
        if(n<10){
            System.out.println(n);
            return;
        }
        print(n/10);
    System.out.println(n % 10);
}

public static int sum(int n){
          if(n==1) return 1;
          return n +sum(n-1);

}

public static int add(int n){
       if(n<10) return n;
    return n % 10 + add(n/10);
}

public static int fib(int n){
        if(n==1 || n==2){
            return 1;
        }
        return fib(n-1) + fib(n-2);
}

    public static void main(String[] args) {
        System.out.println(fib(1));
        System.out.println(fib(3));
        System.out.println(fib(5));
        System.out.println(fib(6));
        System.out.println(fib(40));
    }

    public static void main4(String[] args) {
        System.out.println(add(1729));
    }
    public static void main3(String[] args) {
        System.out.println(sum(10));
    }

    public static void main2(String[] args) {
        print(123);
    }

    public static void main1(String[] args) {
        System.out.println(fac(5));

    }
}
